#include "polsys.h"


// NY8 中断标志位可能的特性：对应中断使能后才会将中断标志位置位。
void isr_hw(void) __interrupt(0)
{
    /*
    当PAx（0 ≤ x ≤ 7）， PBy（0 ≤ y ≤ 5） 设置为输入口且相应的寄存器WUPAx、 WUPBx位设置为 1， 且
    如果PABIE和GIE设置为 1， 当这些选定输入口上的状态变化时， 寄存器PABIF位将被硬件设为 1
    */
    if (INT0IF)//(INT0IE && INT0IF)  // PB0管脚的 INT0 中断只会在电容采样时开启，一旦发生，说明正在电容采样
    {
        SoftCT_EvIOInt();  // 调用此函数通知 SoftCT 捕获到了跳变，这里不判断是什么跳变。
        INT0IF = 0;
    }
    if (PABIF)//(PABIE && PABIF)
    {
        PABIF = 0;
    }
    if (Adc_GetIntFlag())
    {
        Adc_EvComplated(Adc_GetResult());
        Adc_ClrIntFlag();
    }
    if(Tim0_GetIntFlag())
    {
        Tim0_Reload();
        Tim0_ClrIntFlag();
        Polsys_Tick();
    }
#ifndef _SOFTCT_USE_TIMER_QUERY
    if (Tim1_GetIntFlag())  // TIM1 用于电容充放电计时
    {
        // 捕获超时
        SoftCT_EvTimeout();
        Tim1_ClrIntFlag();
    }
#endif
    if(Wdt_GetIntFlag())
    {
        Wdt_ClrIntFlag();// Pow_Reset();
    }
}

// void isr_sw(void) __interrupt(1)
// {

// }
